package com.ddm.service.vxService;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ddm.dto.page.PageQueryDTO;
import com.ddm.entity.Bookmark;
import com.ddm.entity.LevelEntity;
import com.ddm.result.PageResult;

import java.util.List;

/**
 * @author 丁丁猫
 * @version 1.0
 */
public interface BookmarkService extends IService<Bookmark> {
    /**
     * 分页查询用户收藏列表 by userId
     * @param pageQueryDTO
     * @param userId
     * @return
     */
    PageResult pageQueryByUserId(PageQueryDTO pageQueryDTO, Long userId);

    /**
     * 查询单个用户收藏的指标
     * @param standardId
     * @param level
     * @param levelId
     * @return
     */
    LevelEntity searchBookmark(Long standardId, Integer level, Long levelId);

    /**
     * 删除收藏
     * @param userId
     * @param standardId
     * @param level
     * @param levelId
     */
    int deleteBookmark(Long userId, Long standardId, Integer level, Long levelId);
    
    /**
     * 检查用户是否已报名竞赛
     * @param userId 用户ID
     * @param examId 竞赛ID
     * @return 是否已报名
     */
    boolean checkExamRegistration(Long userId, Long examId);
    
    /**
     * 获取用户报名的竞赛ID列表
     * @param userId 用户ID
     * @return 竞赛ID列表
     */
    List<Long> getRegisteredExamIds(Long userId);
}
